iT邦幫忙

2023 iThome 鐵人賽

DAY 25
1
Modern Web

你應該要知道的CSS技巧:發掘被忽略但實用的屬性系列 第 25

【Day25】CSS transform終於可以分開寫了

  • 分享至 

  • xImage
  •  

單獨的transform屬性

Individual Transform Properties支援度:Can I Use)

這真是個振奮人心的消息,transform屬性終於可以分開寫了,影響最大的應該就是動畫效果了

寫法的差異:

看一下以往的寫法:
為了想要呈現hover scale(2)的效果,rotate(45deg)還要再多寫一遍

/* befroe */
.box{
  width:200px;
  height:200px;
  background-color:red;
  transition:all .3s;
  transform:rotate(45deg);
  &:hover{
    transform:rotate(45deg) scale(2);
  }
}

有了Individual Transform Propertie以後:

.box{
  width:200px;
  height:200px;
  background-color:red;
  transition:all .3s;
  rotate:45deg;
  &:hover{
    scale:2;
  }
}

排序前情提要:

大家都知道transform的寫法排序會影響作用的效果:
以下這兩種transform裡的各項屬性只有排序的不同,卻會影響最後呈現效果,像是

/* 1.先scale(2)再位移,位移X的50%就是原本沒有scale的兩倍 */
transform:scale(2) translateX(50%) rotate(30deg);
/* 2.先rotate,位移X的50%,最後scale的兩倍 */
transform:rotate(30deg) translateX(50%) scale(2);
最後的效果1最後的位移X位置會比2還多

排序的差異:

目前這兩種寫法都可以work

使用同種寫法的情況

  • transform property的寫法,效果產生順序會是由左至右
  • individual transformation properties的順序則是固定translate > rotate > scale

使用不同種寫法的情況
individual transformation properties > transform property
=>translate > rotate > scale ,then transform property

codepen範例

IT15-Day25-Individual Transform Properties

參考來源


上一篇
【Day24】Scroll引起的元素定位問題: Scroll abolute跑位
下一篇
【Day26】圓形進度條用CSS就可以做了! - CSS Conic Gradients
系列文
你應該要知道的CSS技巧:發掘被忽略但實用的屬性30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言